package com.ssy.lingxi.logistics.model.enums;

import com.ssy.lingxi.common.language.LanguageHolder;
import com.ssy.lingxi.logistics.api.validate.IntArrayValuable;

import java.util.Arrays;

/**
 * 物流单创建方式枚举
 *
 * @author yzc
 * @version 2.0.0
 * @date 2020/7/14
 */
public enum LogisticsOrderCreateTypeEnum implements IntArrayValuable {

    /**
     * 正常创建 - 1
     */
    LOGISTICS(1, "正常创建"),

    /**
     * 销售订单创建 - 2
     */
    SALES_ORDER(2, "销售订单创建"),

    /**
     * 生产通知订单创建 - 3
     */
    PRODUCTION_NOTIFY(3, "生产通知订单创建"),

    /**
     * 换货(退货发货)创建 - 4
     */
    REPLACE_RETURN(4, "换货(退货发货)创建"),

    /**
     * 换货(换货发货)创建 - 5
     */
    REPLACE_REPLACE(5, "换货(换货发货)创建"),

    /**
     * 退货(退货发货)创建 - 6
     */
    RETURN_RETURN(6, "退货(退货发货)创建");

    public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(LogisticsOrderCreateTypeEnum::getCode).toArray();

    private Integer code;

    @Override
    public int[] array() {
        return ARRAYS;
    }

    LogisticsOrderCreateTypeEnum(Integer code, String message) {
        this.code = code;
    }

    public Integer getCode() {
        return code;
    }

    public String getMessage() {
        return LanguageHolder.getName(this.getClass(),this.code);
    }

}
